Scroll to navigation

ALLOC_HUGEPAGES(2) п═я┐п╨п╬п╡п╬п╢я│я┌п╡п╬ п©я─п╬пЁя─п╟п╪п╪п╦я│я┌п╟ Linux ALLOC_HUGEPAGES(2)

п≤п°п╞

alloc_hugepages, free_hugepages - п╡я▀п╢п╣п╩я▐п╣я┌ п╦п╩п╦ п╬я│п╡п╬п╠п╬п╤п╢п╟п╣я┌ п╬пЁя─п╬п╪п╫я▀п╣ я│я┌я─п╟п╫п╦я├я▀

п·п▒п≈п·п═

void *alloc_hugepages(int key, void *addr, size_t len,
                      int prot, int flag);

int free_hugepages(void *addr);

п·п÷п≤п║п░п²п≤п∙

п║п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ alloc_hugepages() п╦ free_hugepages() п©п╬я▐п╡п╦п╩п╦я│я▄ п╡ Linux 2.5.36 п╦ я┐п╢п╟п╩п╣п╫я▀ п╡ 2.5.54. п·п╫п╦ я│я┐я┴п╣я│я┌п╡п╬п╡п╟п╩п╦ я┌п╬п╩я▄п╨п╬ п╫п╟ п╟я─я┘п╦я┌п╣п╨я┌я┐я─п╟я┘ i386 п╦ ia64 (п©я─п╦ я│п╠п╬я─п╨п╣ я│ п©п╟я─п╟п╪п╣я┌я─п╬п╪ CONFIG_HUGETLB_PAGE). п▓ Linux 2.4.20 я┌п╟п╨п╦п╣ п╫п╬п╪п╣я─п╟ я│п╦я│я┌п╣п╪п╫я▀я┘ п╡я▀п╥п╬п╡п╬п╡ п╬я│я┌п╟п╩п╦я│я▄, п╫п╬ я│п╟п╪п╦ п╡я▀п╥п╬п╡я▀ п╥п╟п╡п╣я─я┬п╟я▌я┌я│я▐ я│ п╬я┬п╦п╠п╨п╬п╧ ENOSYS.

п²п╟ i386 п╟п©п©п╟я─п╟я┌я┐я─п╟ я┐п©я─п╟п╡п╩п╣п╫п╦я▐ п©п╟п╪я▐я┌я▄я▌ я┐п╪п╣п╣я┌ я─п╟п╠п╬я┌п╟я┌я▄ я│ п╬п╠я▀я┤п╫я▀п╪п╦ я│я┌я─п╟п╫п╦я├п╟п╪п╦ (4 п п╦п▒) п╦ п╬пЁя─п╬п╪п╫я▀п╪п╦ я│я┌я─п╟п╫п╦я├п╟п╪п╦ (2 п╦п╩п╦ 4 п°п╦п▒). п÷п╬п╢п╬п╠п╫п╬ я█я┌п╬п╪я┐, ia64 я┐п╪п╣п╣я┌ я─п╟п╠п╬я┌п╟я┌я▄ я│ п╬пЁя─п╬п╪п╫я▀п╪п╦ я│я┌я─п╟п╫п╦я├п╟п╪п╦ я─п╟п╥п╫я▀я┘ я─п╟п╥п╪п╣я─п╬п╡. п╜я┌п╦ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ я│п╩я┐п╤п╟я┌ п╢п╩я▐ п╬я┌п╬п╠я─п╟п╤п╣п╫п╦я▐ п╬пЁя─п╬п╪п╫я▀я┘ я│я┌я─п╟п╫п╦я├ п╡ п©п╟п╪я▐я┌я▄ п©я─п╬я├п╣я│я│п╟ п╦п╩п╦ п╣я▒ п╬я│п╡п╬п╠п╬п╤п╢п╣п╫п╦я▐. п·пЁя─п╬п╪п╫я▀п╣ я│я┌я─п╟п╫п╦я├я▀ п╠п╩п╬п╨п╦я─я┐я▌я┌я│я▐ п╡ п©п╟п╪я▐я┌п╦ п╦ п╫п╣ п╪п╬пЁя┐я┌ п╠я▀я┌я▄ п╡я▀я┌п╣я│п╫п╣п╫я▀ п╡ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬ п©п╬п╢п╨п╟я┤п╨п╦.

п░я─пЁя┐п╪п╣п╫я┌ key я│п╩я┐п╤п╦я┌ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─п╬п╪. п÷я─п╦ п╫я┐п╩п╣п╡п╬п╪ п╥п╫п╟я┤п╣п╫п╦п╦ я│я┌я─п╟п╫п╦я├я▀ я│я┤п╦я┌п╟я▌я┌я│я▐ я┤п╟я│я┌п╫я▀п╪п╦ п╦ п╫п╣ п╫п╟я│п╩п╣п╢я┐я▌я┌я│я▐ п©п╬я┌п╬п╪п╨п╟п╪п╦. п÷я─п╦ п©п╬п╩п╬п╤п╦я┌п╣п╩я▄п╫п╬п╪ п╥п╫п╟я┤п╣п╫п╦п╦ я│я┌я─п╟п╫п╦я├я▀ я│п╬п╡п╪п╣я│я┌п╫п╬ п╦я│п©п╬п╩я▄п╥я┐я▌я┌я│я▐ п╫п╣я│п╨п╬п╩я▄п╨п╦п╪п╦ п©я─п╦п╩п╬п╤п╣п╫п╦я▐п╪п╦ п©п╬я│я─п╣п╢я│я┌п╡п╬п╪ п╬п╢п╦п╫п╟п╨п╬п╡п╬пЁп╬ key п╦ п╫п╟я│п╩п╣п╢я┐я▌я┌я│я▐ п©я─п╬я├п╣я│я│п╟п╪п╦-п©п╬я┌п╬п╪п╨п╟п╪п╦.

п░я─пЁя┐п╪п╣п╫я┌ addr п╡ free_hugepages() я┐п╨п╟п╥я▀п╡п╟п╣я┌ п╨п╟п╨я┐я▌ я│я┌я─п╟п╫п╦я├я┐ п╫я┐п╤п╫п╬ п╬я│п╡п╬п╠п╬п╢п╦я┌я▄: п╣пЁп╬ п╥п╫п╟я┤п╣п╫п╦п╣п╪ я▐п╡п╩я▐п╣я┌я│я▐ я─п╣п╥я┐п╩я▄я┌п╟я┌ п╡я▀п╥п╬п╡п╟ alloc_hugepages(). (п÷п╟п╪я▐я┌я▄, п╫п╟ я│п╟п╪п╬п╪ п╢п╣п╩п╣, п╬я│п╡п╬п╠п╬п╤п╢п╟п╣я┌я│я▐ я┌п╬п╩я▄п╨п╬ п╨п╬пЁп╢п╟ п╡я│п╣ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩п╦ п╣я▒ п╬я│п╡п╬п╠п╬п╢я▐я┌.) п░я─пЁя┐п╪п╣п╫я┌ addr п╡ alloc_hugepages() — я█я┌п╬ п©п╬п╢я│п╨п╟п╥п╨п╟, п╨п╬я┌п╬я─п╬п╧ я▐п╢я─п╬ п╪п╬п╤п╣я┌ п╦ п╫п╣ п╡п╬я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐. п░п╢я─п╣я│п╟ п╢п╬п╩п╤п╫я▀ п╠я▀я┌я▄ п╡я▀я─п╬п╡п╫п╣п╫я▀ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦п╪ п╬п╠я─п╟п╥п╬п╪.

п░я─пЁя┐п╪п╣п╫я┌ len п╥п╟п╢п╟я▒я┌ п╢п╩п╦п╫я┐ я┌я─п╣п╠я┐п╣п╪п╬пЁп╬ я│п╣пЁп╪п╣п╫я┌. п·п╫ п╢п╬п╩п╤п╣п╫ п╠я▀я┌я▄ п╨я─п╟я┌п╣п╫ я─п╟п╥п╪п╣я─я┐ п╬пЁя─п╬п╪п╫п╬п╧ я│я┌я─п╟п╫п╦я├я▀.

п░я─пЁя┐п╪п╣п╫я┌ prot п╬п©я─п╣п╢п╣п╩я▐п╣я┌ я┌п╦п© п╥п╟я┴п╦я┌я▀ я│п╣пЁп╪п╣п╫я┌п╟ п©п╟п╪я▐я┌п╦. п°п╬п╤п╣я┌ п╠я▀я┌я▄ я┐п╨п╟п╥п╟п╫п╬ п╬п╢п╫п╬ п╦п╥ п╥п╫п╟я┤п╣п╫п╦п╧: PROT_READ, PROT_WRITE, PROT_EXEC.

п░я─пЁя┐п╪п╣п╫я┌ flag п╦пЁп╫п╬я─п╦я─я┐п╣я┌я│я▐, п╣я│п╩п╦ key п╫п╣ я▐п╡п╩я▐п╣я┌я│я▐ п©п╬п╩п╬п╤п╦я┌п╣п╩я▄п╫я▀п╪. п▓ я█я┌п╬п╪ я│п╩я┐я┤п╟п╣, п╣я│п╩п╦ flagIPC_CREAT, я┌п╬ я│п╬п╥п╢п╟я▒я┌я│я▐ п╫п╬п╡я▀п╧ я│п╣пЁп╪п╣п╫я┌ п╬пЁя─п╬п╪п╫п╬п╧ я│я┌я─п╟п╫п╦я├я▀, п╣я│п╩п╦ п╫п╣ я│я┐я┴п╣я│я┌п╡я┐п╣я┌ п╫п╦ п╬п╢п╦п╫ п╦п╥ я┐п╨п╟п╥п╟п╫п╫я▀я┘ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─п╬п╡. п∙я│п╩п╦ я└п╩п╟пЁ п╫п╣ п╥п╟п╢п╟п╫, я┌п╬ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌я│я▐ ENOENT, п╣я│п╩п╦ п╫п╣ я│я┐я┴п╣я│я┌п╡я┐п╣я┌ я│п╣пЁп╪п╣п╫я┌п╟ я│ п╥п╟п╢п╟п╫п╫я▀п╪ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─п╬п╪.

п▓п·п≈п▓п═п░п╘п░п∙п°п·п∙ п≈п²п░п╖п∙п²п≤п∙

п÷я─п╦ я┐я│п©п╣я┬п╫п╬п╪ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦ alloc_hugepages() п╡п╬п╥п╡я─п╟я┴п╟п╣я┌ п╡я▀п╢п╣п╩п╣п╫п╫я▀п╧ п╡п╦я─я┌я┐п╟п╩я▄п╫я▀п╧ п╟п╢я─п╣я│, п╟ free_hugepages() п╡п╬п╥п╡я─п╟я┴п╟п╣я┌ п╫п╬п╩я▄. п÷я─п╦ п╬я┬п╦п╠п╨п╣ п╡п╬п╥п╡я─п╟я┴п╟п╣я┌я│я▐ -1, п╟ errno я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌я│я▐ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦п╪ п╬п╠я─п╟п╥п╬п╪.

п·п╗п≤п▒п п≤

п║п╦я│я┌п╣п╪п╫я▀п╧ п╡я▀п╥п╬п╡ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ п╢п╟п╫п╫я▀п╪ я▐п╢я─п╬п╪.

п╓п░п≥п⌡п╚

/proc/sys/vm/nr_hugepages п п╬п╩п╦я┤п╣я│я┌п╡п╬ п╫п╟я│я┌я─п╬п╣п╫п╫я▀я┘ я│я┌я─п╟п╫п╦я├ hugetlb. п■п╬я│я┌я┐п©п╣п╫ п╢п╩я▐ я┤я┌п╣п╫п╦я▐ п╦ п╥п╟п©п╦я│п╦.

/proc/meminfo п▓я▀п╢п╟я▒я┌ п╦п╫я└п╬я─п╪п╟я├п╦я▌ п╬ я┤п╦я│п╩п╣ п╫п╟я│я┌я─п╬п╣п╫п╫я▀я┘ я│я┌я─п╟п╫п╦я├ hugetlb п╦ п╦я┘ я─п╟п╥п╪п╣я─п╣ п╡ я┌я─я▒я┘ п©п╣я─п╣п╪п╣п╫п╫я▀я┘: HugePages_Total, HugePages_Free, Hugepagesize.

п║п·п·п╒п▓п∙п╒п║п╒п▓п≤п∙ п║п╒п░п²п■п░п═п╒п░п°

п╜я┌п╦ п╡я▀п╥п╬п╡я▀ п╣я│я┌я▄ я┌п╬п╩я▄п╨п╬ п╡ Linux п╢п╩я▐ п©я─п╬я├п╣я│я│п╬я─п╬п╡ Intel п╦ п╫п╣ п╢п╬п╩п╤п╫я▀ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ п╡ п©п╣я─п╣п╫п╬я│п╦п╪я▀я┘ п©я─п╬пЁя─п╟п╪п╪п╟я┘.

п≈п░п°п∙п╖п░п²п≤п╞

п■п╟п╫п╫я▀п╣ я│п╦я│я┌п╣п╪п╫я▀п╣ п╡я▀п╥п╬п╡я▀ п╠я▀п╩п╦ я┐п╢п╟п╩п╣п╫я▀; п╬п╫п╦ я│я┐я┴п╣я│я┌п╡я┐я▌я┌ я┌п╬п╩я▄п╨п╬ п╡ я▐п╢я─п╟я┘ п╫п╟я┤п╦п╫п╟я▐ я│ Linux 2.5.36 п╦ п╥п╟п╨п╟п╫я┤п╦п╡п╟я▐ 2.5.54. п▓п╪п╣я│я┌п╬ п╫п╦я┘ я┌п╣п©п╣я─я▄ п╪п╬п╤п╫п╬ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ я└п╟п╧п╩п╬п╡я┐я▌ я│п╦я│я┌п╣п╪я┐ hugetlbfs. п÷п╟п╪я▐я┌я▄, п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪п╟я▐ п╬пЁя─п╬п╪п╫я▀п╪п╦ я│я┌я─п╟п╫п╦я├п╟п╪п╦ (п╣я│п╩п╦ п╣я│я┌я▄ п©п╬п╢п╢п╣я─п╤п╨п╟ п╡ п╕п÷), п©п╬п╩я┐я┤п╟п╣я┌я│я▐ я│ п©п╬п╪п╬я┴я▄я▌ mmap(2) п╡ п╬я┌п╬п╠я─п╟п╤п╟п╣п╪я▀п╣ я└п╟п╧п╩я▀ я█я┌п╬п╧ п╡п╦я─я┌я┐п╟п╩я▄п╫п╬п╧ я└п╟п╧п╩п╬п╡п╬п╧ я│п╦я│я┌п╣п╪п╣.

п°п╟п╨я│п╦п╪п╟п╩я▄п╫п╬п╣ я┤п╦я│п╩п╬ п╬пЁя─п╬п╪п╫я▀я┘ я│я┌я─п╟п╫п╦я├ п╪п╬п╤п╫п╬ п╥п╟п╢п╟я┌я▄ п╡ п©п╟я─п╟п╪п╣я┌я─п╣ п╥п╟пЁя─я┐п╥п╨п╦ я▐п╢я─п╟ hugepages=.

2007-05-31 Linux